import { format, isValid } from 'date-fns';

/**
 * @function createDate - Создает объект типа Date на основе переданного значения в миллисекундах.
 *
 * @param {number} milliseconds - Значение в миллисекундах.
 * @returns {Date | null} - Объект типа Date или null, если переданное значение равно null.
 */
export const createDate = (milliseconds: number): Date => {
    if (milliseconds === null)
        return null;
    return new Date(milliseconds);
}

/**
 * @function formatDate - Форматирует дату в заданном формате.
 *
 * @param { Date } date - Объект типа Date.
 * @returns { string | null } - Отформатированная дата в виде строки или null, если переданное значение равно null.
 */
export const formatDate = (date: Date, formatString = 'dd.MM.yyyy'): (string | null) => {
    if (!isValid(date))
        return null;
    return format(date, formatString);
}